package com.dys.test02;

import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @className: com.dys.test02.ServerTest
 * @description: com.dys.test02
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/08/21 下午8:53
 */
public class ServerTest {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) throws IOException {
        // 1.创建套接字：指定服务器的端口号
        ServerSocket ss = new ServerSocket(8848);
        // 2.等着客户端发来消息: 阻塞方法,等待接收客户端发过来的数据，什么时候接收到数据，什么时候程序往下执行
        // accept()返回值为一个Socket，这个Socket其实就是客户端的Socket
        // 接到这个Socket以后，客户端和服务器才真正产生了连接，才真正可以通信了
        Socket accept = ss.accept();
        // 3.读取客户端发来的数据
        InputStream is = accept.getInputStream();
        DataInputStream dis = new DataInputStream(is);
        String s = dis.readUTF();
        System.out.println("客户端发过来的问候：" + s);
        // 4.关流+关闭网络资源
        dis.close();
        ss.close();
    }
}
